﻿Imports System.Windows.Forms
Imports Testeitor.Entidades
Imports Testeitor.DAO

Public Class DialogResultadoTest

    Private _operacion As Util.Operacion
    Private _resultado As ResultadoTestEntity

    Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
        Dim dao As New RolDAO()
        Select Case _operacion
            Case Util.Operacion.GUARDAR
                Dim resultado As New ResultadoTestEntity(txtDescripcion.Text, DirectCast(cmbTest.SelectedValue, TestEntity), _
                            checkRevisado.Checked, txtWarnings.Text, txtErrores.Text, Convert.ToDateTime(dateFecha.Text), _
                            DirectCast(cmbEstado.SelectedValue, EstadoEntity))
                dao.Insertar(resultado)
                Util.mensaje("La resultado se ha guardado correctamente!", "resultado Guardada")
            Case Util.Operacion.MODIFICAR
                _resultado.Test = DirectCast(cmbTest.SelectedValue, TestEntity)
                _resultado.Descripcion = txtDescripcion.Text
                _resultado.Warnings = txtWarnings.Text
                _resultado.Errores = txtErrores.Text
                _resultado.Checked = checkRevisado.Checked
                _resultado.Fecha = Convert.ToDateTime(dateFecha.Text)
                _resultado.Estado = DirectCast(cmbEstado.SelectedValue, EstadoEntity)
                dao.Actualizar(_resultado)
                Util.mensaje("La resultado se ha modificado correctamente!", "resultado Guardada")
            Case Util.Operacion.ELIMINAR
                dao.Eliminar(_resultado.Id)
                Util.mensaje("La resultado se ha eliminado correctamente!", "resultado Guardada")
        End Select

        Me.DialogResult = System.Windows.Forms.DialogResult.OK
        Me.Close()
    End Sub

    Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
        Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
        Me.Close()
    End Sub

    Public Sub cargarDatos(ByVal resultado As Entidades.EntityBase)
        _resultado = resultado
        cmbTest.SelectedValue = _resultado.Test
        txtDescripcion.Text = _resultado.Descripcion
        txtErrores.Text = _resultado.Errores
        txtWarnings.Text = _resultado.Warnings
        checkRevisado.Checked = _resultado.Checked
        dateFecha.Text = _resultado.Fecha
        cmbEstado.SelectedValue = _resultado.Estado

        Me.bloquear()
    End Sub

    Public Sub bloquear()
        If _operacion.Equals(Util.Operacion.ELIMINAR) Then
            cmbTest.Enabled = False
            txtDescripcion.Enabled = False
            txtErrores.Enabled = False
            txtWarnings.Enabled = False
            checkRevisado.Enabled = False
            dateFecha.Enabled = False
            cmbEstado.Enabled = False
        End If
    End Sub

    Public Sub New(ByVal oper As Util.Operacion)
        InitializeComponent()
        Me._operacion = oper
    End Sub

    Private Sub Dialogresultado_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim estadoDAO As New EstadoDAO
        Dim listaEstado As System.Collections.Generic.List(Of Entidades.EntityBase) = estadoDAO.SeleccionarTodas()
        Dim testDAO As New TestDAO
        Dim listaTest As System.Collections.Generic.List(Of Entidades.EntityBase) = testDAO.SeleccionarTodas()

        Util.cargarComboEntity(Me.cmbEstado, listaEstado)
        Util.cargarComboEntity(Me.cmbEstado, listaTest)
    End Sub

End Class
